package com.gitee.huanminabc.utils_tools.redis.aspect.note;

import com.gitee.huanminabc.utils_tools.redis.common.constant.LimitConstant;

import java.lang.annotation.*;

/**
 * 限流类型
 * @author huanmin
 * @date 2024/2/6
 */

@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface RedisLimiter {
    /**
     * @return 限流key--默认为rate_limit:业务名:类名.方法名 ,如果限制了IP类型,则为: rate_limit:业务名:ip:类名.方法名
     */
    String key() default "";
    /**
     * @return 限流时间,单位为s
     */
    int time() default 60;
    /**
     * @return time时间内限制的资源请求次数
     */
    int count() default 100;
    /**
     * @return 限流类型
     */
    int limitType() default LimitConstant.DEFAULT;
}
